Online entities offer a wide variety of services to a variety of different client devices, including personal computers (PCs), portable digital assistants (PDAs), mobile telephones, pocket PCs, smartphones, set-top boxes, digital video recorders (DVRs), gaming consoles, and other client devices. These client devices often communicate differently. For example, different devices may use different communication protocols, different data formats, different security mechanisms, and may even transmit different data.
Typically, an online entity that wishes to provide services to devices that communicate differently must customize their services to meet the communication needs of each different device. For example, envision that a hypothetical online entity offers three different services to five different types of client devices that each communicate differently. In this example, the online entity would need to offer fifteen customized services (three for each of five different device types).
The number of client devices available is rapidly increasing. To stay competitive in the marketplace, online entities must adapt their services to support the ever-growing number of different device types. Customizing individual services to communicate with each different type of client device becomes increasingly burdensome and costly as the number of services and/or number of device types increases. This problem is compounded by the fact that anytime an online entity makes a change to one of their service offerings, this change must be propagated across the customized services for each supported device type.